// 个人中心页JS
Page({
  data: {
    // 用户信息
    userInfo: {
      nickname: '',
      avatar: ''
    },
    userId: '',
    // 统计数据
    totalDraws: 0,
    totalSubmits: 0,
    extraDraws: 0,
    // 缓存大小
    cacheSize: '0KB'
  },

  onLoad: function() {
    // 加载用户信息和统计数据
    this.loadUserData();
    this.calculateStats();
    this.calculateCacheSize();
  },

  onShow: function() {
    // 每次页面显示时更新数据
    this.loadUserData();
    this.calculateStats();
  },

  // 加载用户信息
  async loadUserData() {
    try {
      wx.showLoading({ title: '加载中...' });
      const app = getApp();
      
      // 从后端API获取用户信息
      const userInfo = await app.apiService.getUserInfo();
      
      this.setData({
        userInfo: userInfo || {
          nickname: '用户' + Math.floor(Math.random() * 10000),
          avatar: ''
        },
        userId: userInfo?.id || 'U' + Math.floor(Math.random() * 1000000).toString().padStart(6, '0')
      });
    } catch (error) {
      console.error('加载用户信息失败:', error);
      
      // 即使失败也要显示默认数据
      this.setData({
        userInfo: {
          nickname: '用户' + Math.floor(Math.random() * 10000),
          avatar: ''
        },
        userId: 'U' + Math.floor(Math.random() * 1000000).toString().padStart(6, '0')
      });
    } finally {
      wx.hideLoading();
    }
  },

  // 计算统计数据
  async calculateStats() {
    try {
      wx.showLoading({ title: '加载中...' });
      const app = getApp();
      
      // 从后端API获取统计数据
      const stats = await app.apiService.getUserStats();
      
      this.setData({
        totalDraws: stats?.totalDraws || 0,
        totalSubmits: stats?.totalSubmits || 0,
        extraDraws: stats?.extraDraws || 0
      });
    } catch (error) {
      console.error('计算统计数据失败:', error);
      
      // 使用默认值
      this.setData({
        totalDraws: 0,
        totalSubmits: 0,
        extraDraws: 0
      });
    } finally {
      wx.hideLoading();
    }
  },

  // 计算缓存大小（模拟）
  calculateCacheSize: function() {
    // 这里只是模拟缓存大小，实际项目中可以通过微信API计算
    const size = Math.floor(Math.random() * 10) + 1;
    this.setData({
      cacheSize: size + 'KB'
    });
  },

  // 显示收藏页面
  showFavorites: function() {
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
  },

  // 显示隐私设置
  showPrivacy: function() {
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
  },

  // 显示关于我们
  showAbout: function() {
    wx.showModal({
      title: '关于下班盲盒',
      content: '下班盲盒 v1.0.0\n\n生活需要仪式感，每一天都值得期待。',
      showCancel: false
    });
  },

  // 显示反馈建议
  showFeedback: function() {
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
  },

  // 清除缓存
  clearCache: function() {
    wx.showModal({
      title: '清除缓存',
      content: '确定要清除所有缓存吗？',
      success: async (res) => {
        if (res.confirm) {
          try {
            wx.showLoading({ title: '清除中...' });
            
            // 调用后端API清除缓存
            const app = getApp();
            await app.apiService.clearCache();
            
            // 清除本地临时缓存
            wx.removeStorageSync('drawHistory');
            wx.removeStorageSync('submissions');
            
            // 更新页面数据
            this.setData({
              cacheSize: '0KB'
            });
            
            // 重新加载统计数据
            await this.calculateStats();
            
            wx.hideLoading();
            wx.showToast({
              title: '清除成功',
              icon: 'success'
            });
          } catch (error) {
            console.error('清除缓存失败:', error);
            wx.hideLoading();
            wx.showToast({
              title: '清除失败',
              icon: 'none'
            });
          }
        }
      }
    });
  },

  // 退出登录
  logout: function() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      success: async (res) => {
        if (res.confirm) {
          try {
            wx.showLoading({ title: '处理中...' });
            
            // 调用后端API退出登录
            const app = getApp();
            await app.apiService.logout();
            
            // 清除本地用户信息
            wx.removeStorageSync('userInfo');
            
            // 重置用户信息
            this.setData({
              userInfo: {
                nickname: '',
                avatar: ''
              },
              userId: ''
            });
            
            wx.hideLoading();
            wx.showToast({
              title: '已退出',
              icon: 'success'
            });
            
            // 返回到首页
            wx.switchTab({
              url: '../index/index'
            });
          } catch (error) {
            console.error('退出登录失败:', error);
            wx.hideLoading();
            wx.showToast({
              title: '退出失败',
              icon: 'none'
            });
          }
        }
      }
    });
  }
});